package com.SpringAOP.test_1_31_springaop.cglbProxy;

import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

public class CGLibIntercepter implements MethodInterceptor {
    // 首先还是要有一个目标对象
    private Object target;

    public CGLibIntercepter(Object target) {
        this.target = target; // 还是需要提供给谁代理 这样的
    }

    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("开始代理");
        // 调用目标对象
        Object result = methodProxy.invoke(target,objects);
        System.out.println("结束代理");
        return  result;
    }
    //这个 intercept 方法 类似于 invoke 方法
}
